Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №1 Програмування, ч3

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ / Звіт про виконання лабораторної роботи №1 з дисципліни: “Програмування, частина 3 (Структури даних та алгоритми)” на тему:“ Внутрішнє представлення в пам’яті комп’ютера статичних даних ” Львів 2017 Мета: дослідження внутрішнього представлення в пам’яті комп’ютера даних статичної структури. Постановка задачі Дослідити внутрішнє представлення в пам’яті комп’ютера даних статичної структури. Змінні, які потрібно проаналізувати : bool b = (25*5) % 10 * 12 = 60; unsigned char ch2 = ‘ u ’; unsigned long i5 = 25*352 = 8800; double d2 = Z . X e + Y; d2 = 300.25e + 12; де X = 25, Y = 12; //(дата народження 25.12.1998) Система тестів 1) bool b = (22*5) % 10 * 1=60; Тип bool - логічний тип даних і у пам’яті комп’ютера він представляється одним байтом. Має два стани true або false. В даному випадку він буде мати значення true, так як цьому значенню відповідає значення змінної відмінне від нуля. Внутрішнє представлення змінної bool b в основній пам'яті: 01 2) char ch2 = ‘u’; Тип char - символьний тип даних, який дозволяє представляти символи у кодуванні за ASCII таблицею. В даному випадку це код символа ‘u’. Розмір змінної unsigned char ch2 1 байт Внутрішнє представлення змінної unsigned char ch2 в основній пам'яті: 75 3) unsigned long i5 = 25*352=8800 unsigned long – це беззнаковий чотирьохбайтовий тип даних, в якому значення зберігається у доповняльному коді. 880010 = 0010 0010 0110 00002 = 0000 226016; Внутрішнє представлення змінної unsigned long i5 в пам'яті комп'ютера: 60 22 00 00 4) double d2 = 300.25e + 12 = 300.25 * 1012 = 300250000000000; Переведемо число у 16 та 2 СЧ: 30025000000000010 = 111366918040016 ; 111136698040016 =0001 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 00002; Необхідно визначити значення m (мантиса), s(знак) та e(експонента). s = 0, бо число додатне. Доповнимо число нулем: 1 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 0000,02 Нормалізуємо число: 1, 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 0000 02 * 10101100 Заокруглення: 1, 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 0000 | 02 1, 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 0000 2 * 10101100 Тип double займає ВПК 8 байт (64 біт) З них 11 біт виділяється під експоненту, 1 біт під знак числа і решта 52 під мантису. Знайдемо експоненту е = 102310 + 4410 = 106710 = 42B16 = 010 0001 0111 Зборка за схемою: 1біт 11 біт 52 біта  s e m  0 010 0001 0111 1000100010001001101100110100110000000010000000000   100 0010 1111 0001 0001 0001 0011 0110 0110 1001 1000 0000 0100 0000 0000 00002 = 42F11136698040016 Тепер для отримання значення числа ВПК, необхідно обернути його побайтно, бо ВПК числа типу double зберігаються у зворотньому порядку розміщення байт числа. Отже, ВПК (d2) – 00 40 80 69 36 11 F1 4216 Спеціфікація програми #include<math.h> #include<stdio.h> //b,ch2,i5,d2 template<typename T> void showInMemory(T data) { unsigned char *vx = (unsigned char *)(&data); for (int i =0 ; i<sizeof data; i++) printf("%02X ", vx[i]); printf("\n"); } void func(int birthDate, int birthMonth) { bool b = (bool)((birthDate * 5) % 10 * birthMonth); unsigned char ch2 = 'u'; unsigned long i5 = (unsigned long)(birthDate * 352); double d2 = 300.25e+12; showInMemory(b); showInMemory(ch2); showInMemory(i5); showInMemory(d2); } int main(void) { func(25, 12); } Результати виконання програми / Висновок: на даній лаборораторній роботі я дослідив внутрішнє представлення в пам’яті комп’ютера даних статичної структури.
Антиботан аватар за замовчуванням

28.05.2019 17:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини